Introduction To Computation Theory: Divide And Conquer